Add hping to the ramdisk. Also, do some very simple versioning.
authordan@localhost.localdomain <dan@localhost.localdomain>
Fri, 18 Nov 2005 12:00:13 +0000 (13:00 +0100)
committerdan@localhost.localdomain <dan@localhost.localdomain>
Fri, 18 Nov 2005 12:00:13 +0000 (13:00 +0100)
This is the first change to the ramdisk since v0.1.0.  So, we now build
the image as initrd-X.Y.img, and link initrd.img to it.  This lets us
have a few checks to make sure that people rebuild their ramdisks when
necessary.

tools/xm-test/Makefile.am
tools/xm-test/README
tools/xm-test/configure.ac
tools/xm-test/lib/XmTestReport/xmtest.py.in
tools/xm-test/ramdisk/Makefile.am
tools/xm-test/ramdisk/configs/buildroot
tools/xm-test/ramdisk/patches/buildroot/hping.patch [new file with mode: 0644]
tools/xm-test/runtest.sh

index a065616eced8944331d5dd531dd522b9fc237ab1..8d0c84bfd76aed1203942d0bcad549143b9089ac 100644 (file)
@@ -1,6 +1,9 @@
 SUBDIRS = ramdisk tests
 EXTRA_DIST = lib runtest.sh mkreport
 
+existing:
+       $(MAKE) -C ramdisk existing
+
 # Remove any pyc's, CVS dirs, and prune the skel dirs
 dist-hook:
        find $(distdir) -name '*~' -delete -print
index 55d5fb43217f4a6c29bf5b21dcbf4e92a576431e..f357019630b1da395020c01f8ea14ee76b832e73 100644 (file)
@@ -45,11 +45,15 @@ special files, this process must be done as root:
 NB: If you have the initrd.img from another installation of xm-test,
 you can copy it into the ramdisk directory to eliminate the need to
 rebuild it.  If you do this, there is no need to run 'make' again.
-Simply copy the initrd.img file into ramdisk/ and then run the
-runtest.sh script.  Note that in general, you should not attempt to
-use a ramdisk from a previous minor version of xm-test (i.e., don't
-use a ramdisk from 0.4.0 with 0.5.0.  0.5.0 should work for 0.5.3
-though)
+Simply copy the initrd-X.Y.img file into ramdisk/ and then run:
+
+   # make existing
+
+This will set up the link so that xm-test will use the existing
+ramdisk.  Next, just run "runtest.sh" normally.  Note that in general,
+you should not attempt to use a ramdisk from a previous minor version
+of xm-test (i.e., don't use a ramdisk from 0.4.0 with 0.5.0.  0.5.0
+should work for 0.5.3 though)
 
 
 Running
index 5c37f3a8c77499bef5625e52d8df662aca6bba64..5bfa2d1d529b8d869b465cae9bd05cdec838b255 100644 (file)
@@ -1,7 +1,7 @@
 # xm-test configure.ac input script
 
 # Basic header information
-AC_INIT([xm-test], [0.5.0])
+AC_INIT([xm-test], [0.6.0])
 AM_INIT_AUTOMAKE([1.7 foreign])
 
 # Check for dependencies
@@ -65,5 +65,6 @@ AC_CONFIG_FILES([
     lib/XmTestLib/config.py
     ])
 
-
 AC_OUTPUT
+
+chmod a+x lib/XmTestReport/xmtest.py
index d8eeebd6b398688ce091c62a159de10569d4c5b2..9b7a2636a0268077ca79aa7fd8edb7f17a866e41 100644 (file)
@@ -1,3 +1,15 @@
 #!/usr/bin/python
 
 XM_TEST_VERSION = "@PACKAGE_VERSION@"
+
+if __name__ == "__main__":
+    import re
+
+    match = re.match("^(\d+)\.(\d+)\.(\d+)$", XM_TEST_VERSION)
+
+    print "XM_TEST_VERSION=%s" % XM_TEST_VERSION
+    if match:
+        print "XM_TEST_MAJ=%s" % match.group(1)
+        print "XM_TEST_MIN=%s" % match.group(2)
+        print "XM_TEST_REV=%s" % match.group(3)
+        
index cddc397262ef9226191db57e7c673856434261f1..be0636fa74410cf7ac27b0c26b4789c5ccb50095 100644 (file)
@@ -1,5 +1,5 @@
 
-EXTRA_DIST = skel configs
+EXTRA_DIST = skel configs patches
 
 BR_TAR = buildroot-20050823.tar.bz2
 BR_URL = http://buildroot.uclibc.org/downloads/snapshots/$(BR_TAR)
@@ -9,6 +9,9 @@ BR_IMG = $(BR_SRC)/rootfs.i386.ext2
 
 BR_ROOT = build_i386/root
 
+XMTEST_MAJ_VER = $(shell echo @PACKAGE_VERSION@ | perl -pe 's/(\d+)\.(\d+)\.\d+/\1.\2/')
+XMTEST_VER_IMG = initrd-$(XMTEST_MAJ_VER).img
+
 all: initrd.img
 
 $(BR_TAR):
@@ -21,12 +24,21 @@ $(BR_IMG): $(BR_SRC)
        cp configs/buildroot $(BR_SRC)/.config
        cp configs/busybox $(BR_SRC)/package/busybox/busybox.config
        cp configs/uClibc $(BR_SRC)/toolchain/uClibc/uClibc.config
+       (for i in patches/buildroot/*.patch; do \
+         cd $(BR_SRC) && patch -p1 <../$$i; done )
        cd $(BR_SRC) && make oldconfig && make
 
-initrd.img: $(BR_IMG)
+$(XMTEST_VER_IMG): $(BR_IMG)
        (cd skel; tar cf - .) | (cd $(BR_SRC)/$(BR_ROOT); tar xvf -)
        cd $(BR_SRC) && make
-       cp $(BR_IMG) initrd.img
+       cp $(BR_IMG) initrd-$(XMTEST_MAJ_VER).img
+
+initrd.img: $(XMTEST_VER_IMG)
+       ln -sf $(XMTEST_VER_IMG) initrd.img
+
+existing:
+       @[ -f $(XMTEST_VER_IMG) ] && ln -sf $(XMTEST_VER_IMG) initrd.img || \
+       echo Error, $(XMTEST_VER_IMG) not found
 
 clean-local: am_config_clean-local
 
index c80c2c847230bb943795062c69e073cf374722a1..64938194b25337eb39dafce1eaeb57631713bc1a 100644 (file)
@@ -225,6 +225,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config"
 # BR2_PACKAGE_WIRELESS_TOOLS is not set
 # BR2_PACKAGE_XORG is not set
 # BR2_PACKAGE_ZLIB is not set
+BR2_PACKAGE_HPING=y
 
 #
 # Target Options
diff --git a/tools/xm-test/ramdisk/patches/buildroot/hping.patch b/tools/xm-test/ramdisk/patches/buildroot/hping.patch
new file mode 100644 (file)
index 0000000..bcd5cd0
--- /dev/null
@@ -0,0 +1,67 @@
+diff -Naur buildroot.orig/package/Config.in buildroot/package/Config.in
+--- buildroot.orig/package/Config.in   2005-11-15 07:30:21.000000000 -0800
++++ buildroot/package/Config.in        2005-11-15 07:30:54.000000000 -0800
+@@ -118,6 +118,6 @@
+ source "package/wireless-tools/Config.in"
+ source "package/xorg/Config.in"
+ source "package/zlib/Config.in"
+-
++source "package/hping/Config.in"
+ endmenu
+diff -Naur buildroot.orig/package/hping/Config.in buildroot/package/hping/Config.in
+--- buildroot.orig/package/hping/Config.in     1969-12-31 16:00:00.000000000 -0800
++++ buildroot/package/hping/Config.in  2005-11-14 14:13:20.000000000 -0800
+@@ -0,0 +1,5 @@
++config BR2_PACKAGE_HPING
++      bool "hping"
++      default y
++      help
++              This is the hping package
+diff -Naur buildroot.orig/package/hping/hping.mk buildroot/package/hping/hping.mk
+--- buildroot.orig/package/hping/hping.mk      1969-12-31 16:00:00.000000000 -0800
++++ buildroot/package/hping/hping.mk   2005-11-14 15:11:06.000000000 -0800
+@@ -0,0 +1,43 @@
++# Taken from the buildroot examples
++
++HPING_VERSION = 2.0.0-rc3
++HPING_TBALL = hping$(HPING_VERSION).tar.gz
++HPING_URL = http://www.hping.org/$(HPING_TBALL)
++HPING_DIR = $(BUILD_DIR)/hping2-rc3
++HPING_TARGET_BINARY = usr/bin/hping
++HPING_BINARY = hping
++
++$(DL_DIR)/$(HPING_TBALL):
++      $(WGET) -P $(DL_DIR) $(HPING_URL)
++
++$(HPING_DIR)/.source: $(DL_DIR)/$(HPING_TBALL)
++      tar xzf $(DL_DIR)/$(HPING_TBALL) -C $(BUILD_DIR)
++      touch $(HPING_DIR)/.source
++
++$(HPING_DIR)/.configured: $(HPING_DIR)/.source
++      (cd $(HPING_DIR); \
++      ./configure; )
++      cat $(HPING_DIR)/Makefile | grep -v './hping2 -v' > $(HPING_DIR)/foo
++      mv $(HPING_DIR)/foo $(HPING_DIR)/Makefile
++      touch $(HPING_DIR)/.configured 
++
++$(HPING_DIR)/$(HPING_BINARY): $(HPING_DIR)/.configured
++      $(MAKE) CC=$(TARGET_CC) -C $(HPING_DIR)
++
++$(TARGET_DIR)/$(HPING_TARGET_BINARY): $(HPING_DIR)/$(HPING_BINARY)
++      cp $(HPING_DIR)/hping2 $(TARGET_DIR)/bin
++
++hping: $(TARGET_DIR)/$(HPING_TARGET_BINARY)
++
++hping-clean:
++      $(MAKE) prefix=$(TARGET_DIR)/usr -C $(HPING_DIR) uninstall
++      -$(MAKE) -C $(HPING_DIR) clean
++
++hping-dirclean:
++      rm -Rf $(HPING_DIR)
++
++ifeq ($(strip $(BR2_PACKAGE_HPING)),y)
++TARGETS += hping
++endif
++
++
index c6a95b4e8b8836c1e835bf039980ca6b71b0f1eb..f366a48c74ec5bea742ffac7e6d16a5b43602783 100755 (executable)
@@ -61,19 +61,31 @@ runnable_tests() {
     fi
 
     # See if the ramdisk has been built
-    rdsize=$(stat -c %s ramdisk/initrd.img 2>/dev/null)
+    rdsize=$(stat -Lc %s ramdisk/initrd.img 2>/dev/null)
     if [ -z "$rdsize" ] || [ $rdsize -le 16384 ]; then
        echo "Cannot find a valid ramdisk.  You need to run \"make\" or"
        echo "copy in a previously-built ramdisk to the ramdisk/ directory"
        exit 1
     fi
 
+    # Figure out the version of the ramdisk link and compare it
+    # to what it should be as a cheap way of making sure we're
+    # using the right version
+    realrd=$(readlink ramdisk/initrd.img)
+    eval $(./lib/XmTestReport/xmtest.py)
+    rrdver="initrd-${XM_TEST_MAJ}.${XM_TEST_MIN}.img"
+    if [ "$realrd" != "$rrdver" ]; then
+       echo "Error: ramdisk/initrd.img is from an old version"
+       echo "You need to build a ramdisk from at least ${XM_TEST_MAJ}.${XM_TEST_MIN}"
+       exit 1
+    fi
+
     # See if xend is running
     if ! xm list >/dev/null 2>&1; then
        echo "'xm list' failed: is xend running?"
        exit 1
     fi
-    
+
 }
 
 # Get contact info if needed